home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2007 September / PCWSEP07.iso / Software / Linux / Linux Mint 3.0 Light / LinuxMint-3.0-Light.iso / casper / filesystem.squashfs / usr / share / libgda / xml / gda-xml-query.dtd < prev    next >
Encoding:
Text File  |  2007-01-12  |  5.2 KB  |  240 lines

  1. <!--      xml-query.dtd
  2.           Copyright (C) 2000 Vivien Malerba
  3.                         and  Gerhard Dieringer
  4.  
  5.   This library is free software; you can redistribute it and/or
  6.   modify it under the terms of the GNU Library General Public
  7.   License as published by the Free Software Foundation; either
  8.   version 2 of the License, or (at your option) any later version.
  9.  
  10.   This library is distributed in the hope that it will be useful,
  11.   but WITHOUT ANY WARRANTY; without even the implied warranty of
  12.   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  13.   Library General Public License for more details.
  14.  
  15.   You should have received a copy of the GNU Library General Public
  16.   License along with this library; if not, write to the
  17.   Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  18.   Boston, MA 02111-1307, USA.
  19.  
  20. -->
  21.  
  22. <!ENTITY  % trailer "union|unionall|intersect|minus|order">
  23. <!ENTITY  % simplevalue "const|field|func">
  24. <!ENTITY  % boolop "and|or|not">
  25. <!ENTITY  % arithop "eq|ne|lt|le|gt|ge">
  26. <!ENTITY  % sqlop "null|like|between|in|exists">
  27. <!ENTITY  % datatype "struct|array|type">
  28.  
  29. <!ELEMENT query (select|insert|update|delete|create|drop)>
  30. <!ATTLIST query
  31.           id ID #IMPLIED
  32. >
  33.  
  34. <!ELEMENT select (targetlist?,valuelist?,where?,having?,group?,(%trailer;)?)>
  35.  
  36. <!ELEMENT insert (target,dest?,(sourcelist|query))>
  37.  
  38. <!ELEMENT update (target,setlist,where?)>
  39.  
  40. <!ELEMENT delete (target,where?)>
  41.  
  42. <!ELEMENT targetlist (target,joinlist?)>
  43.  
  44. <!ELEMENT union     (query)>
  45.  
  46. <!ELEMENT unionall  (query)>
  47.  
  48. <!ELEMENT intersect (query)>
  49.  
  50. <!ELEMENT minus     (query)>
  51.  
  52. <!ELEMENT dest (field+)>
  53.  
  54. <!ELEMENT setlist (set+)>
  55.  
  56. <!ELEMENT set (field,(%simplevalue;))>
  57.  
  58. <!ELEMENT sourcelist ((%simplevalue;)+)>
  59.  
  60. <!ELEMENT valuelist (value+)>
  61.  
  62. <!ELEMENT value (%simplevalue;)>
  63. <!ATTLIST value
  64.           id    ID     #IMPLIED
  65. >
  66.  
  67. <!ELEMENT where (%boolop;|%arithop;|%sqlop;)>
  68.  
  69. <!ELEMENT having (%boolop;|%arithop;|%sqlop;)>
  70.  
  71. <!ELEMENT group (valueref+)>
  72.  
  73. <!ELEMENT order (valueref+)>
  74.  
  75. <!ELEMENT valueref EMPTY>
  76. <!ATTLIST valueref
  77.           source   IDREF       #REQUIRED
  78.           order    (asc|desc)  #IMPLIED
  79. >
  80.  
  81. <!ELEMENT target EMPTY>
  82. <!ATTLIST target
  83.           id      ID       #IMPLIED
  84.           name    NMTOKEN  #REQUIRED
  85. >
  86.  
  87. <!ELEMENT joinlist (join+)>
  88.  
  89. <!ELEMENT join (target,on?)>
  90. <!ATTLIST join
  91.           type (inner|left|right|outer) "inner"
  92. >
  93.  
  94. <!ELEMENT on (%boolop;|%arithop;)>
  95.  
  96.  
  97. <!ELEMENT field EMPTY>
  98. <!ATTLIST field
  99.           source IDREF   #IMPLIED
  100.           name   NMTOKEN #REQUIRED
  101.           alias  NMTOKEN #IMPLIED
  102. >
  103.  
  104. <!ELEMENT func (arglist?)>
  105. <!ATTLIST func 
  106.           name  NMTOKEN #REQUIRED
  107.           alias NMTOKEN #IMPLIED
  108.       aggregate (yes|no) "no"
  109. >
  110.  
  111. <!ELEMENT arglist (field|const|func)+>
  112.  
  113.  
  114. <!ELEMENT const EMPTY>
  115. <!ATTLIST const
  116.           value CDATA   #IMPLIED
  117.           alias NMTOKEN #IMPLIED
  118.           type  NMTOKEN #REQUIRED
  119.           null (yes|no) "no"
  120. >
  121.  
  122. <!ELEMENT and (%boolop;|%arithop;|%sqlop;)+>
  123.  
  124. <!ELEMENT or (%boolop;|%arithop;|%sqlop;)+>
  125.  
  126. <!ELEMENT not (%boolop;|%arithop;|%sqlop;)>
  127.  
  128. <!ELEMENT eq ((%simplevalue;),(%simplevalue;|query))>
  129.  
  130. <!ELEMENT ne ((%simplevalue;),(%simplevalue;|query))>
  131.  
  132. <!ELEMENT lt ((%simplevalue;),(%simplevalue;|query))>
  133.  
  134. <!ELEMENT le ((%simplevalue;),(%simplevalue;|query))>
  135.  
  136. <!ELEMENT gt ((%simplevalue;),(%simplevalue;|query))>
  137.  
  138. <!ELEMENT ge ((%simplevalue;),(%simplevalue;|query))>
  139.  
  140. <!ELEMENT null (%simplevalue;)>
  141.  
  142. <!ELEMENT like ((%simplevalue;),(%simplevalue;|query))>
  143.  
  144. <!ELEMENT in (field,query)>
  145.  
  146. <!ELEMENT exists (query)>
  147.  
  148.  
  149. <!-- not sure, if we support it
  150. <!ELEMENT between ((%simplevalue;),(%simplevalue;),(%simplevalue;))>
  151. -->
  152.  
  153. <!--
  154. ************************************************************
  155. -->
  156.  
  157. <!ELEMENT create (tabledef|viewdef|sequence|indexdef)>
  158.  
  159. <!ELEMENT drop   (table|view|sequence|index)>
  160.  
  161.  
  162.  
  163. <!--
  164. The following elements should be moved to the database DTD
  165. -->
  166.  
  167. <!ELEMENT tabledef (fielddef+,primary?,foreign*)?>
  168. <!ATTLIST tabledef
  169.           id      ID       #IMPLIED
  170.           name    NMTOKEN  #REQUIRED
  171.           temp (yes|no) "no"
  172. >
  173.  
  174. <!ELEMENT viewdef (query)>
  175. <!ATTLIST viewdef 
  176.           id      ID       #IMPLIED
  177.           name    NMTOKEN  #REQUIRED
  178. >
  179.  
  180. <!ELEMENT fielddef (%datatype;)>
  181. <!ATTLIST fielddef
  182.           id   ID      #IMPLIED
  183.           name NMTOKEN #REQUIRED
  184.           notnull (yes|no) "no"
  185. >
  186.  
  187. <!ELEMENT primary EMPTY>
  188. <!ATTLIST primary
  189.           key IDREFS #REQUIRED
  190. >
  191.  
  192. <!ELEMENT foreign EMPTY>
  193. <!ATTLIST foreign
  194.           key   IDREFS   #REQUIRED
  195.           table NMTOKEN  #REQUIRED
  196.           ref   NMTOKENS #REQUIRED
  197. >
  198.  
  199. <!ELEMENT struct (element+)>
  200.  
  201. <!ELEMENT element (%datatype;)>
  202. <!ATTLIST element 
  203.           name NMTOKEN #REQUIRED
  204. >
  205.  
  206. <!ELEMENT array (%datatype;)>
  207. <!ATTLIST array
  208.           size NMTOKENS #REQUIRED
  209. >
  210.  
  211. <!ELEMENT type EMPTY>
  212. <!ATTLIST type 
  213.           name NMTOKEN  #REQUIRED
  214.           size NMTOKENS #IMPLIED
  215. >
  216.  
  217. <!ELEMENT sequence (property*)>
  218. <!ATTLIST sequence
  219.           name  NMTOKEN #REQUIRED
  220. >
  221.  
  222. <!ELEMENT property EMPTY>
  223. <!ATTLIST property
  224.           name  NMTOKEN #REQUIRED
  225.       value NMTOKEN #REQUIRED
  226. >
  227.  
  228. <!ELEMENT indexdef EMPTY>
  229. <!ATTLIST indexdef
  230.           name    NMTOKEN  #REQUIRED
  231.           table   NMTOKEN  #REQUIRED
  232.           columns NMTOKENS #REQUIRED
  233.           unique  (yes|no) "no"
  234. >
  235.  
  236. <!ELEMENT index EMPTY>
  237. <!ATTLIST index
  238.           name    NMTOKEN  #REQUIRED
  239. >
  240.